package model.bo;

import java.util.List;

import model.bean.GrupoUsuario;
import model.persistencia.dao.GrupoUsuarioDAO;
import model.persistencia.dao.HibernateUtil;

public class GrupoUsuarioBO {
	private GrupoUsuarioDAO grupoUsuarioDAO;

	public GrupoUsuarioBO() {
		this.grupoUsuarioDAO = new GrupoUsuarioDAO();
	}

	public GrupoUsuario incluir(GrupoUsuario grupo) throws Exception {
		HibernateUtil.getInstance().startTransaction();
		try {
			grupo = grupoUsuarioDAO.save(grupo);
			HibernateUtil.getInstance().commitTransaction();
		} catch (Exception e) {
			HibernateUtil.getInstance().rollbackTransaction();
		}
		return grupo;
	}

	public List<GrupoUsuario> listar(Object grupoUsuario) {

		List<GrupoUsuario> gruposUsuarios = null;
		HibernateUtil.getInstance().startTransaction();
		try {
			gruposUsuarios = grupoUsuarioDAO.listar(grupoUsuario);
			HibernateUtil.getInstance().commitTransaction();
		} catch (Exception e) {
			e.printStackTrace();
			HibernateUtil.getInstance().rollbackTransaction();
		}

		return gruposUsuarios;
	}
	
	public List<GrupoUsuario> getGruposUsuario() {

		List<GrupoUsuario> gruposUsuarios = null;
		HibernateUtil.getInstance().startTransaction();
		try {
			gruposUsuarios = grupoUsuarioDAO.list();
			HibernateUtil.getInstance().commitTransaction();
		} catch (Exception e) {
			e.printStackTrace();
			HibernateUtil.getInstance().rollbackTransaction();
		}

		return gruposUsuarios;
	}
	

	public GrupoUsuario getGrupoUsuario(String tipo) {
		return grupoUsuarioDAO.getGrupoUsuario(tipo);
	}
	
	public GrupoUsuario consultar(GrupoUsuario grupo) {
		try {
			grupo = grupoUsuarioDAO.load(grupo.getId());
		} catch (Exception e) {
			HibernateUtil.getInstance().rollbackTransaction();
		}
		return grupo;
	}
}
